#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,m,L,V;
int a[3010],v[3010],d[3010],p[3010];
double f[3010][3010];
ll ans=0;
int main(){
    freopen("detect.in","r",stdin);
    freopen("detect.out","w",stdout);
    int T;
    cin>>T;
    while(T--){
        ans=0;
        cin>>n>>m>>L>>V;
        for(int i=1;i<=n;i++){
            cin>>d[i]>>v[i]>>a[i];
        }
        for(int i=1;i<=m;i++){
            cin>>p[i];
        }
        for(int i=1;i<=n;i++){
            double s;
            int cnt=0;
            for(int j=1;j<=m;j++){
                if(d[i]>p[j]) f[i][j]=0;
                else{
                    if(cnt==0){
                        s=sqrt(v[i]*v[i]+2*a[i]*(p[j]-d[i]));
                        cnt=1;
                    }
                    else s=sqrt(s*s+2*a[i]*(p[j]-p[j-1]));
                    if(s<0) f[i][j]=0;
                    else if((d[i]+(1ll*s*s-v[i]*v[i])/2/a[i])>L) f[i][j]=0;
                    else {
                        f[i][j]=s;
                    }
                }
            }
        }
        //for(int i=1;i<=n;i++){
        //    for(int j=1;j<=m;j++){
        //        cout<<f[i][j]<<" ";
        //    }cout<<endl;
        //}
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                if(f[i][j]>V){
                    ans++;
                    break;
                }
            }
        }
        cout<<ans<<" ";
        int ans1=0,cnt=m,cnt1=0;
        for(int st=1;st<1<<m+1;st++){
            ans1=0,cnt1=0;
            for(int i=1;i<=m;i++){
                if((st>>i-1)&1){
                    cnt1++;
                }
            }
            for(int i=1;i<=n;i++){
                bool flag=false;
                for(int j=1;j<=m;j++){
                    if((st>>j-1)&1){
                        if(f[i][j]>V) {
                            ans1++;
                            flag=true;
                        }
                    }
                    if(flag==true) break;
                }
            }
            if(ans1==ans) cnt=min(cnt,cnt1);
        }
        cout<<m-cnt<<endl;
    }
    return 0;
}
